<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="../rurple.css" type="text/css" />

<title>Zeichen-Salami</title>
</head>
<body>
<h2 class="title">29. Zeichen-Salami</h2>

<p>Wir haben gesehen, wie wir Variablen Zahlen zuweisen konnten. Wir können
Variablen auch Zeichenfolgen zuweisen; zum Beispiel:</p>

<pre> 
>>> Vorname = "Andre"
>>> Nachname = "Roberge"
>>> Name = Vorname + Nachname
>>> <span class="keyword">print</span> Name
AndreRoberge
</pre>

<p>Schau dir an, wie das Plus-Zeichen (<tt>+</tt>) in Python verwendet wird, um
zwei Zeichenfolgen zu einer zu kombinieren; diese Operation nennt man 
Zeichen-<i>Verkettung</i> (oder -<i>Konkatenation</i>). Allerdings hängen Vor- und Nachname jetzt wie
ein Wort zusammen. Wir können das korrigieren, indem wir eine dritte
Zeichenfolge dazwischen schieben, die nur aus einem Leerzeichen besteht.</p>

<pre>
>>> Name = Vorname + <span class=
"string">" "</span> + Nachname
>>> <span class="keyword">print</span> Name
Andre Roberge
</pre>

<p>Eine andere Möglichkeit, dieses Ergebnis zu erhalten, ist die Verwendung von
<tt>%s</tt>, womit wir Zahlen in eine Zeichenfolge eingesetzt hatten.</p>

<pre>
>>> name = <span class=
"string">"%s %s"</span> % (Vorname, Nachname)
>>> <span class="keyword">print</span> name
Andre Roberge
</pre>

<p>Schließlich testen wir die beiden Zeichenfolgen auf Gleichheit.</p>

<pre>
>>> <span class="keyword">print</span> name == Name
True
</pre>

<p>Versuche es selbst!</p>

<!--==============================-->
<hr class="line" />

<h3 class="section">Slices</h3>

<p><i>Slices</i> (sprich: ßlaißis) heißt auf deutsch Scheiben oder Schnitte, aber wir
werden das englische Wort verwenden, weil es ein Fachausdruck ist.
Manchmal wollen wir nur ein einzelnes Zeichen oder einen Teil der Zeichenfolge
lesen. Dafür sind <i>Slices</i> sehr nützlich.</p>

<p>Ich werde dir drei Merksätze aufschreiben und die Schreibweise der
<i>Slices</i> zusammenfassen.
Anschließend kannst du eine Reihe von Beispielen ausprobieren und mit den
angegebenen Ergebnissen vergleichen. Außer den drei Merksätzen wird es keine
weiteren Erklärungen für diesen Abschnitt geben, daher musst du ihn dir sehr
sorgfältig anschauen, um vollständig zu verstehen, was passiert.</p>

<ol>
<li>Das erste Element einer Zeichenfolge wird als 0 (null) gezählt.</li>
<li>Das letzte Element wird als Länge (der Zeichenfolge) minus eins gezählt,
so dass eine Zeichenfolge mit 3 Elementen mit 0, 1 und 2 durchgezählt wird.</li>
<li>Die Zählschritte können größer als eins sein.</li>
</ol>

<p>Schreibweise: <tt>[</tt>first<tt>:</tt>last<tt>:</tt>step<tt>]</tt>; 
jeder Wert kann weggelassen werden.</p>

<p>Hier sind die Beispiele:</p>

<pre>
>>> alphabet = <span class="string">"abcdefghijklmnopqrstuvwxyz"</span>
>>> ziffern = <span class="string">'0123456789'</span>

>>> alphabet[0]
'a'

>>> alphabet[1]
'b'

>>> alphabet[5]
'f'

>>> ziffern[0]
'0'

>>> ziffern[7]
'7'

>>> ziffern[-1]
'9'

>>> ziffern[-2]
'8'

>>> alphabet[-3]
'x'

>>> ziffern[0:3]
'012'

>>> ziffern[0:4]
'0123'

>>> ziffern[0:5]
'01234'

>>> ziffern[2:5]
'234'

>>> alphabet[2:5]
'cde'

>>> ziffern[0:10:2]
'02468'

>>> ziffern[0::2]
'02468'

>>> ziffern[0::3]
'0369'

>>> ziffern[::3]
'0369'

>>> ziffern[::-1]
'9876543210'

>>> ziffern[::-2]
'97531'

>>> ziffern[::-3]
'9630'

>>> alphabet[:10:2]
'acegi'
</pre>

<p>Mach dir deine eigenen Zeichenfolgen und probier noch ein paar Beispiele aus!</p>

<div class="lessons_nav">
<a href="28-variables2.htm"><img alt="previous" src=
"../../images/previous.png" />Variablen und Funktionen</a> - <a href=
"../lessons_toc.htm"><img alt="home" src="../../images/home.png" /></a> - <a href=
"30-dot.htm">Objektorientierte Programmierung: Punkt-Schreibweise<img alt="next"
src="../../images/next.png" /></a>
</div>
</body>
</html>
